% hasproperty(_,_) :- fail.
% 
% knows(srv,ctxm(db,1,key,id_al,id_al)).
% knows(srv,ctxm(db,1,col1,age_al,cage_17)).
% knows(srv,ctxm(db,2,key,id_bo,id_bo)).
% knows(srv,ctxm(db,2,col1,age_bo,cage_17)).
% knows(srv,ctxm(dot,dot,n,in,cn)).
% knows(srv,ctxm(dot,dot,skey,skey,skey)).
% knows(srv,ctxm(dot,srv,ip,ip_srv,ip_srv)).
% knows(srv,ctxm(dot,srv,km,km_srv,km_srv)).
% knows(srv,ctxm(pi_,cli,ip,ip_cli,ip_cli)).
% knows(srv,ctxm(pi_,srv,ip,ip_srv,ip_srv)).
% knows(srv,pri(es,[ctxm(pi_,dot,skey,skey,skey),ctxm(pi_,su,id,id_al,id_al)])).
% knows(srv,pri(es,[ctxm(pi_,dot,skey,skey,skey),pri(lst,[ctxm(pi,su,age,age_al,cage_17),ctxm(pi_,dot,n,in,cn),pri(s,[ctxm(pi_,srv,km,km_srv,km_srv),pri(lst,[ctxm(pi,su,age,age_al,cage_17),ctxm(pi_,dot,n,in,cn)])])])])).
% knows(cli,ctxm(ab,12,nma,nm_bo,nm_bo)).
% knows(cli,ctxm(ab,12,telna,teln_bo,cteln_bo)).
% knows(cli,ctxm(ab,4,nm,nm_al,cnm_al)).
% knows(cli,ctxm(ab,4,id,id_al,id_al)).
% knows(cli,ctxm(dot,dot,skey,skey,skey)).
% knows(cli,ctxm(dot,me,ip,ip_cli,ip_cli)).
% knows(cli,ctxm(dot,srv,ip,ip_srv,ip_srv)).
% knows(cli,pri(pk,[ctxm(dot,srv,km,km_srv,km_srv)])).
% knows(cli,ctxm(pi_,cli,ip,ip_cli,ip_cli)).
% knows(cli,ctxm(pi_,srv,ip,ip_srv,ip_srv)).
% knows(cli,pri(es,[ctxm(pi_,dot,skey,skey,skey),ctxm(pi_,su,id,id_al,id_al)])).
% knows(cli,pri(es,[ctxm(pi_,dot,skey,skey,skey),pri(lst,[ctxm(pi,su,age,age_al,cage_17),ctxm(pi_,dot,n,in,cn),pri(s,[ctxm(pi_,srv,km,km_srv,km_srv),pri(lst,[ctxm(pi,su,age,age_al,cage_17),ctxm(pi_,dot,n,in,cn)])])])])).

ioi(id_al,'Ai').
ioi(age_al,'Aa').
ioi(nm_al,'An').

ioi(id_bo,'Bi').
ioi(age_bo,'Ba').
ioi(nm_bo,'Bn').
ioi(teln_bo,'Bt').

